[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Types
MonoOrColor = MonoCard..ColorCard
For determining whether the colour or mono card is being used.
VideoScrollTypes = (ScrollAutoDetect, ScrollMethod1, ScrollMethod2,
ScrollMethod3)
This determines the method used for EGA, VGA or SVGA virtual screen
smooth scrolling. For VGA ScrollAutoDetect will work correctly but
when using SVGA modes the user will have to select a method.
ScrollMethod1 should only be used in graphics modes (I think).
I included them all just in case. Always allow the user a choice of
modes, but use ScrollAutoDetect as the default. For SVGA modes,
use ScrollMethod2 as the default. For EGA modes, use ScrollMethod3.
VideoCardTypes = (MDA,CGA,EGA,VGA,SVGA,BWVGA,HerculesInColor)
MDA is a standard mono card which only supports 80x25 black and
white text. Although 40x25 is supported, the text size does not
change.
From what I've heard, HerculesInColor looks just like a CGA (for
text modes) but it acts like a mono card. I have not tested this.
It should be treated as a mono card but colour is displayed.
CGA is a colour card supporting only 80x25 or 40x25 text modes.
EGA supports 80x25, 40x25 and 80x43. It also supports virtual
screens and smooth scrolling. Note that the text character length
is 8 pixels. (The unit will take care of this detail if you
don't access the smooth scrolling directly.)
VGA, Super VGA and Black-And-White VGA have more text modes but
most super VGA cards have different mode numbers. Make sure that
you allow the user to specify the mode number for his card listed in
his VGA manual. The font size in 80x25 mode is 9 pixels in length
but for other modes the length is 8 pixels (usually).
I can't find how to check for the length of the font so the unit
does some guessing. If you intend using Super VGA modes, you may
want the user to specify the font length (font height is
detectable).
For EGA, VGA and SVGA graphics support, see the PGUI which uses
similar functions and procedures. Unfortunately not all SVGA cards
support graphics scrolling yet.
VideoStateType = Record
FunctionalityInfo :Pointer;
VideoMode :Byte;
Columns :Word;
RegenBufferLength :Word;
RegenBufferAddr :Word;
CursorPos :Array[1..8,1..2] of Byte;
CursorType :Word;
ActivePage :Byte;
CRTControllerAddr :Word;
Register3x8 :Byte;
Register3x9 :Byte;
Rows :Byte;
CharacterHeight :Word;
DisplayCode :Byte;
DisplayCodeAlt :Byte;
ColoursSupport :Word;
TotalDisplayPages :Byte;
TotalScanLines :Byte;
PrimaryCharBlock :Byte;
SecondaryCharBlock:Byte;
StateInformation :Byte;
Reserved1 :Array[1..3] of Byte;
VideoMemory :Byte;
SavePointerState :Byte;
Reserved2 :Array[1..14] Of Byte;
End
This is the information returned by BIOS function 1Bh.
OneVideoCard = Record
XSize :Word;
YSize :Word;
SX1,SY1,
SX2,SY2 :Word;
WX1,WY1,
WX2,WY2 :Word;
Address :Word;
CardType :VideoCardTypes;
CharacterHeight :Byte;
CharacterLength :Byte;
ScrollMethod :VideoScrollTypes;
End
This is the status of a video card, either the mono card or the
colour card.
XSize and YSize specify the length of the virtual screen. If
no virtual screen is active, then this is the size of the screen.
SX1, SY1, SX2 and SY2 specify the four corners of the display
area. By default this starts at the top left corner and ends at
the size of the screen.
WX1, WY1, WX2 and WY2 specify the four corners of the writeable
(or 'window') area.
Address is B000h or B800h, depending on whether the card is colour
or mono. CardType is either MonoCard or ColorCard and must
match the Address correctly.
CharacterHeight and CharacterLength are usually detected correctly
but you may have to change the CharacterLength in some strange SVGA
modes.
ScrollMethod should be ScrollAutoDetect but may have to be changed
by the user and will have to be changed for SVGA modes.
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson